import Form from './src/Form.vue'
import type { FormSchema, FormSetProps } from './src/types'
export type { ComponentNameEnum, ComponentName, InputComponentProps, AutocompleteComponentProps, InputNumberComponentProps, SelectOption, SelectComponentProps, SelectV2ComponentProps, CascaderComponentProps, SwitchComponentProps, RateComponentProps, ColorPickerComponentProps, TransferComponentProps, RadioOption, RadioGroupComponentProps, RadioButtonComponentProps, CheckboxOption, CheckboxGroupComponentProps, DividerComponentProps, DatePickerComponentProps, DateTimePickerComponentProps, TimePickerComponentProps, TimeSelectComponentProps, ColProps, FormSetProps, FormItemProps, FormSchema, FormProps, PlaceholderModel, InputPasswordComponentProps, TreeSelectComponentProps } from './src/types'

export interface FormExpose {
  setValues: (data: Recordable) => void
  setProps: (props: Recordable) => void
  delSchema: (field: string) => void
  addSchema: (formSchema: FormSchema, index?: number) => void
  setSchema: (schemaProps: FormSetProps[]) => void
  formModel: Recordable
  getComponentExpose: (field: string) => any
  getFormItemExpose: (field: string) => any
}

export { Form }
